// Package util 提供与 SELinux 相关的辅助函数（可选）。
// 若系统未启用 SELinux 或命令不可用，这些函数将安全地返回而不报错。
package util

import (
    "os/exec"
    "strings"
)

// IsSelinuxEnabled 检查系统是否启用 SELinux。
func IsSelinuxEnabled() bool {
    cmd := exec.Command("getenforce")
    out, err := cmd.Output()
    if err != nil {
        return false
    }
    status := strings.TrimSpace(string(out))
    return status == "Enforcing" || status == "Permissive"
}

// SetSelinuxContext 使用 chcon 设置文件的 SELinux 上下文类型。
// 若系统未启用 SELinux，直接返回 nil。
func SetSelinuxContext(path, contextType string) error {
    if !IsSelinuxEnabled() {
        return nil
    }
    cmd := exec.Command("chcon", "-t", contextType, path)
    return cmd.Run()
}

